import {Form,Input} from 'antd';
/**
 * 编写一个高阶组件函数
 * 可以接收一个原始的antd表单组件Form
 * 以及一些属性，比如要渲染的字段、成功的回调、失败的回调
 */
function toConfigForm(Form){//接收老组件
    //接收字段数组的属性
    return function({fields,...rest}){//接收配置的属性 handleSubmit handleReset fields
        //最终还是会渲染老组件Form
        return (
            <Form {...rest}>
                {
                    fields.map(({props,Component=Input,componentProps})=>(
                        <Form.Item key={props.name}  {...props}>
                           <Component {...componentProps}/>
                        </Form.Item>
                    ))
                }
            </Form>
        )
    }
}

const ConfigForm = toConfigForm(Form);
export default ConfigForm;
